package travelDream.entities;

import java.io.Serializable;

import javax.persistence.*;

import travelDream.ejb.gestionePacchetto.GiornataDTO;



@Entity
@NamedQueries({
        @NamedQuery(name="GiornatePredefinite.findAll", query="SELECT g FROM GiornatePredefinite g"),
        @NamedQuery(name = "GiornatePredefinite.findByPk", query = "SELECT g FROM GiornatePredefinite g WHERE g.giornataPK.idPacchetto = :idPacchetto ORDER BY g.giornataPK.giornata"),
        @NamedQuery(name = "GiornatePredefinite.exist", query = "SELECT g FROM GiornatePredefinite g WHERE g.giornataPK.idPacchetto = :idPacchetto AND g.giornataPK.giornata =:idGiornata")
})
public class GiornatePredefinite extends GiornataGenerica implements Serializable {
	
	private static final long serialVersionUID = 1L;

	public GiornatePredefinite(){
		
	}
	
	public GiornatePredefinite(int idPacchetto, int giornata, Integer idTrasporto, Integer idEscursione, Integer idHotel){
		super(idPacchetto, giornata, idTrasporto, idEscursione, idHotel);
	}
	
	public GiornatePredefinite(GiornataDTO giornataDTO){
		super(giornataDTO.getIdPacchetto(),giornataDTO.getNumeroGiornata(),
				getIdT(giornataDTO),getIdE(giornataDTO),getIdH(giornataDTO));	
	}
	
	private static Integer getIdT(GiornataDTO g){
		try{
			if(g.getTrasporto().getIdTrasporto() == 0)
				return null;
			return g.getTrasporto().getIdTrasporto();
		}
		catch(NullPointerException r){
			return null;
		}
	}
	
	private static Integer getIdE(GiornataDTO g){
		try{
			if(g.getEscursione().getId() == 0)
				return null;
			return g.getEscursione().getId();
		}
		catch(NullPointerException r){
			return null;
		}
	}
	
	private static Integer getIdH(GiornataDTO g){
		try{
			if(g.getHotel().getId() == 0)
				return null;
			return g.getHotel().getId();
		}
		catch(NullPointerException r){
			return null;
		}
	}

}